Interposition as an Operating System Extension Mechanism
نویسندگان
چکیده
Modern production operating systems are large and complex systems developed over many years by large teams of programmers, containing many hundreds of thousands of lines of code. Consequently, it is extremely difficult to add significant new functionality to these systems [16, 1, 42]. In response to this problem, a number of recent research projects have addressed the issue of extensible operating systems; these include SPIN [7, 5], VINO [45, 41], Exokernel [20], Lipto [17], and Fluke [21]. This paper addresses the problem of providing extensibility for existing production operating systems such as Solaris, through the technique of interposition on existing kernel interfaces. Interposition is useful as an extension mechanism because it is transparent, it permits the incremental addition of functionality to an interface, and it enables the easy composition of multiple extensions. We have designedand implemented a prototype extension mechanism, SLIC, which utilizes interposition to efficiently insert trusted extension code into a production operating system kernel. We have used SLIC to implement a number of useful operating system extensions: a patch to fix a security hole described in a CERT advisory, a simple encryption file system, and a restricted execution environment for arbitrary untrusted binaries. Performance measurements of the SLIC prototype show that interposition on existing kernel interfaces can be accomplished efficiently.
منابع مشابه
Slic : Secure Loadable Interposition
This paper presents a method for extending operating system functionality in a way that is secure, eecient, simple, requires no kernel source changes, and is compatible with existing application binaries. Our approach is to enable extensions of the system call interface by loading a device driver into the kernel that redirects system calls to extension code running either in the kernel or in a ...
متن کاملDITools: Application-level Support for Dynamic Extension and Flexible Composition
Today, operating systems set{up process images from executable les using xed rules. Programs are restricted to run in essentially the same environment at every execution. However, we believe that this behavior is not always convenient, and that many times it is interesting to make variations to the execution environment, either to introduce new func-tionality or to specialize critical services,...
متن کاملOmos | an Object Server for Program Execution
The bene ts of object oriented programming are well known but popular operating systems provide very few object oriented features to users and few are im plemented using object oriented techniques themselves In this paper we discuss a mechanism for apply ing object oriented programming concepts to program binding linking and execution We describe OMOS an object meta object server that embodies ...
متن کاملA Host Intrusion Prevention System for Windows Operating Systems
We propose an intrusion prevention system called WHIPS that controls, entirely in kernel mode, the invocation of the critical system calls for the Windows OS security. WHIPS is implemented as a kernel driver, also called kernel module, by using kernel structures of the Windows OS. It is integrated without requiring changes to either the kernel data structures or to the kernel algorithms. WHIPS ...
متن کاملParrot: Transparent User-Level Middleware for Data-Intensive Computing
Distributed computing continues to be an alphabet-soup of services and protocols for managing computation and storage. To live in this environment, applications require middleware that can transparently adapt standard interfaces to new distributed systems; such software is known as an interposition agent. In this paper, we present several lessons learned about interposition agents via a progres...
متن کامل